package br.com.zonavibe.manager.impl;

import java.sql.SQLException;
import java.util.Calendar;
import java.util.List;

import br.com.zonavibe.dao.impl.AlunoDAOImpl;
import br.com.zonavibe.manager.AlunoManager;
import br.com.zonavibe.model.Aluno;
import br.com.zonavibe.utils.JavaDate;

public class AlunoManagerImpl implements AlunoManager {

	private AlunoDAOImpl alunoDAO = new AlunoDAOImpl();

	public boolean inserirAluno(Aluno aluno) throws SQLException {
		return alunoDAO.inserirAluno(setAluno(aluno));
	}

	public boolean alterarAluno(Aluno aluno) throws SQLException {
		return alunoDAO.alterarAluno(aluno);
	}

	public boolean deletarAluno(Aluno aluno) throws SQLException {
		return alunoDAO.deletarAluno(aluno);
	}

	public List<Aluno> listaAlunos() throws SQLException {
		return alunoDAO.listaAlunos();
	}

	public Aluno buscarAluno(Aluno aluno) throws SQLException {
		return alunoDAO.buscarAluno(aluno);
	}

	public List<Aluno> buscarAlunos(Aluno aluno) throws SQLException {
		return alunoDAO.buscarAlunos(aluno);
	}

	private Aluno setAluno(Aluno aluno) {
		Aluno alunoRetorno = new Aluno();

		alunoRetorno.setIdAluno(aluno.getIdAluno());
		alunoRetorno.setNome(aluno.getNome());
		alunoRetorno.setNmPai(aluno.getNmPai());
		alunoRetorno.setNmMae(aluno.getNmMae());
		alunoRetorno.setDataNascimento(JavaDate.formateStringToDate(aluno.getDataNascimentoStr(), JavaDate.DATA_YYYY_MM_DD));
		alunoRetorno.setEndereco(aluno.getEndereco());
		alunoRetorno.setBairro(aluno.getBairro());
		alunoRetorno.setCidade(aluno.getCidade());
		alunoRetorno.setCep(aluno.getCep());
		alunoRetorno.setEstado(aluno.getEstado());
		alunoRetorno.setTelRes(aluno.getTelRes());
		alunoRetorno.setTelCel(aluno.getTelCel());
		alunoRetorno.setCategoria(aluno.getCategoria());
		alunoRetorno.setRg(aluno.getRg());
		alunoRetorno.setCpf(aluno.getCpf());
		alunoRetorno.setEmail(aluno.getEmail());

		Calendar calendar = Calendar.getInstance();
		alunoRetorno.setDataCadastro(JavaDate.formateStringToDate(calendar.get(calendar.DATE) + "/" + calendar.get(calendar.MONTH) + "/" + calendar.get(calendar.YEAR), JavaDate.DATA_YYYY_MM_DD));
		
		return alunoRetorno;
	}

}
